<?php
/**
 * View_Post
 *
 * Класс предназначен для отображения информации о постах в блогах
 * @author Александр Егоров <slamer@slamer.ru>
 * @version 1.0
 */
class View_Post {
	/**
	 * Отображает форму добавления/редактирования
	 *
	 * @param Post $objPost
	 */
  public function showEditForm(Post $objPost) {
  	Service_Debug::setDebug();
  	$objForm = new Form_ViewForm(array(
  		'enctype' => 'multipart/form-data', 
  		'errorIfExists' => true, 
  		'successMessage' => 'Изменения сохранены успешно', 
  		'class' => 'standard wide', 
  		'fullWidth' => '900', 
  		'leftWidth' => '180'
  	), $objPost);
		$objForm->show();

		$objForm->textField(array('maxlength' => '256', 'text' => 'Название', 'required' => 1), 'post_name');
		
		//Вывод WYSIWYG-поля
		$arrWysiwygSettings = array(
		  'rows' => 15, 
		  'cols' => 120, 
		  'text' => 'Текст', 
		  'class' => 'wysiwygAdmin',
		  'wideTextarea' => true 
		);
		$objForm->textareaField($arrWysiwygSettings, 'post_text');
		
		$objForm->submitButton(array(), 'save');
		$objForm->close();
  }
	/**
	 * Отображает список постов
	 *
	 * @param array $arrPosts - массив с постами
	 */
  public static function showList($arrPosts, $essenceId = null) {
  	$isAdmin = SimpleAdministration::isAdmin();
  	echo '<div class="blog">';
	  	foreach ($arrPosts as $arrPost) {
	  		$essence = 0;
	  		echo '<div class="post">';
					echo '<h2>';
						echo '<a href="' . W_ABSPATH . 'blog/post/' . $arrPost['ID_post'] . '/">' . $arrPost['post_name'] . '</a>';
						if ($isAdmin) {
							echo ' (<a href="' . W_ADMIN . 'posts/edit/' . $arrPost['ID_post'] . '/">';
								echo Service_Translate::getText('Редактировать');
							echo '</a>)';
						}
					echo '</h2>';
					echo '<div class="text">';
						echo $arrPost['post_text'];
					echo '</div>';
					echo '<p class="date">' . Service_Date::getTimeForUser($arrPost['created_at']) . '</p>';
					echo '<p class="comments-link">' . Service_Translate::getText('Комментарии') . ': <a href="' . W_ABSPATH . 'blog/post/' . $arrPost['ID_post'] . '/#comments" class="postlink">' . $arrPost['comments_amount'] . '</a></p>';
					//echo ' <a href="' . W_ABSPATH . 'blog/post/' . $arrPost['ID_post'] . '/" class="postlink">Читать далее</a>';
				echo '</div>';
				echo '<div class="clear"></div>';
				echo '<hr />';
	  	}
	  echo '</div>';
	}

	/**
	 * Отображет отдельный пост
	 *
	 * @param Post $objPost - Объект поста
	 */
  public static function showPost(Post $objPost, array $arrComments) {
  	$userId = User_User::getId();
  	echo '<div class="post">';
			echo '<div class="text">';
				echo $objPost->getField('post_text');
			echo '</div>';
			echo '<div class="date">' . Service_Date::getTimeForUser($objPost->getField('created_at')) . '</div>';
			echo '<a name="comments"></a>';
			echo '<h2 class="comments-head" >Комментарии (<span class="comments-amount">' . $objPost->getField('comments_amount') . '</span>)</h2>';
	    echo '<div class="comments">';
	    	$objViewComment = new View_Comment();
				$objViewComment->showComments($arrComments, 19, $objPost->id);
	    echo '</div>';
	    echo '<div class="post-actions">';
	    	if (User_User::getId()) {
		    	echo '<a href="#" onclick="return false;" class="write-comment-link" >' . Service_Translate::getText('Написать комментарий') . '</a>';
			    echo '<div class="commentForm" style="display:none;">';
			      echo '<div>';
			      	echo '<textarea id="textCommentText" cols="50" rows="5" name="commentText"></textarea>';
			      	echo '<p><button type="submit" class="standardSubmit" id="subAddComment" name="addComment">Опубликовать</button></p>';
			      echo '</div>';
			      echo '<input type="hidden" name="rootComment" id="inpRootComment" value="" />';
			      echo '<input type="hidden" name="essenceType" id="inpEssenceType" value="' . $objPost->essenceType . '" />';
			      echo '<input type="hidden" name="essenceId" id="inpEssenceId" value="' . $objPost->id . '" />';
			    echo '</div>';
		    }
		    else {
		    	echo '<p class="grey">' . Service_Translate::getText('Чтобы добавить комментарий необходимо зарегистрироваться или войти в свой аккаунт') . '</p>';
		    }		    
	    echo '</div>';
    echo '</div>';
  }
  
  /**
	 * Отображает список постов для главной
	 *
	 * @param array $arrPosts - массив с постами
	 */
  public static function showListForMain($objPosts) {
  	$objSession = User_Session::instance();
  	if (sizeof($objPosts->tableFields)){
  		echo '<div class="mainPostBlock">';
			foreach ($objPosts->tableFields as $post) {
				self::showPostPreview($post, 'sport_', 37);
			}
			echo '&nbsp;';
			echo '</div>';
  	}
  	else echo 'Постов пока нет . ';
	}

	/**
	 * Метод отображает список элементов переданного массива
	 *
	 * @param array $arrList - массив элементов для отображения в списке
	 * @param string $divId - идентификатор блока, обрамляющего список. Если === null, то обрамляющего дива вообще не будет
	 * @param bool $isTable - флаг, выводить ли таблицей 
	 */
	public function showAdminList(array $arrPosts) {
		Service_Debug::setDebug();
    echo '<div>';
      if (!$arrPosts) return false;
  	  else {
	      foreach ($arrPosts as $arrPost) {
	      	$this->showOneInAdminList($arrPost);
	      }
	    }
		echo '</div>'; 
	}  
	
	/**
	 * (non-PHPdoc)
	 * @see View_Base::showOneInList()
	 */
	public function showOneInAdminList($arrPost) {
		Service_Debug::setDebug();
		echo '<div class="autoDeleteBlock">';
		  echo '<a href="' . W_ADMIN . 'posts/edit/' . $arrPost['ID_post'] . '">';
		    echo $arrPost['post_name'];
		  echo '</a>';
		  echo ' <span class="autoDelete ajax red" essencetype="post" essenceid="' . $arrPost['ID_post'] . '">Удалить</span>';
		echo '</div>';
	}
	
}
?>